Wireless paging directory assistant

ABSTRACT

An online directory system that provides relatively comprehensive and up-to-date information relating to users and their corresponding cellular telephone numbers and/or wireless pager numbers. The system and method involves a cellular telephone database and a means for providing access to the cellular telephone database. Users provide search requests through the means of communication and the search is carried out providing results to the requesting party. The search request typically includes a name and the results typically include a list of one or more names and corresponding cellular telephone numbers satisfying the search request.

FIELD OF THE INVENTION

[0001] This invention relates to the field of telecommunications, and inparticular the use of telecommunications to provide online directoryassistance. More particularly still, the present invention relates to anonline directory assistance system for cellular telephone numbers.

BACKGROUND OF THE INVENTION

[0002] Cellular telephones provide users with significant mobility andfreedom and are becoming a preferred means of communication betweenindividuals. Indeed, given the popularity of such telephones, theservice providers for these cellular telephones vigorously compete forusers. As a direct result, many companies continuously provide new andbetter cellular telephones, service options, or the like, in order toentice more people to purchase their products. Consequently, usersfrequently switch from one service provider to another, typically tocapitalize on better services. Unfortunately however, when users changeproviders, a new telephone number is typically assigned.

[0003] The frequent switching of cellular telephone providers,therefore, has created a relatively unique problem in providingup-to-date directory assistance for cellular telephone numbers. It iswell understood that in order to initiate a telephone call to a cellulartelephone, the initiating party typically must have the telephone numberof the other party. It is also well known that many publishers provideprinted directories of telephone numbers. These telephone books areprinted on a periodic basis and attempt to provide comprehensive,up-to-date listings of telephone numbers and their corresponding users.Unfortunately, however, since the cellular telephone numbers change sofrequently, the publishers of the printed telephone directors typicallydo not print cellular telephone number directories.

[0004] It is with respect to these and other considerations that thepresent invention has been made.

SUMMARY OF THE INVENTION

[0005] The present invention relates to an online directory system thatprovides relatively comprehensive and up-to-date information relating tousers and their corresponding cellular telephone numbers and/or wirelesspager numbers. The system and method involves a cellular telephonedatabase and a means for providing access to the cellular telephonedatabase. Users provide search requests through the means ofcommunication and the search is carried out providing results to therequesting party. The search request typically includes a name and theresults typically include a list of one or more names and correspondingcellular telephone numbers satisfying the search request.

[0006] In accordance with certain aspects, the present invention relatesto a system and method of providing online, cellular telephoneassistance wherein a user can access an online database of cellulartelephone numbers, provide one or more search terms and receive at leastone cellular telephone number in response to the search request. In anembodiment, the cellular telephone number may relate to pagers as wellas telephones. The online database is updated periodically, and in oneembodiment, the database is updated automatically, such as when theservice provider telephone number database is modified. Search terms mayinclude names, first and last, geographic information, such asaddresses, cities or regions, the service provider, etc. In accordancewith other aspects, the present invention relates to the automaticredaction of certain information from being accessible in the onlinedatabase, either whole records or portions thereof.

[0007] The invention may be implemented as a computer process, acomputing system or as an article of manufacture, such as a computerprogram product. The computer program product may be a computer storagemedium readable by a computer system and encoding a computer program ofinstructions for executing a computer process. The computer programproduct may also be a propagated signal on a carrier readable by acomputing system and encoding a computer program of instructions forexecuting a computer process.

[0008] A more complete appreciation of the present invention and itsimprovements can be obtained by reference to the accompanying drawings,which are briefly summarized below, to the following detaileddescription of presently preferred embodiments of the invention and tothe appended claims.

BRIEF DESCRIPTION OF THE DRAWINGS

[0009]FIG. 1 illustrates a distributed network system that incorporatesaspects of the present invention.

[0010]FIG. 2 illustrates a computer system that may be used according toparticular aspects of the present invention.

[0011]FIG. 3 is a block diagram illustrating functional components ofthe system shown in FIG. 1 incorporating aspects of the presentinvention.

[0012]FIG. 4 illustrates a flowchart of functional operations related tothe server-side operations in creating a cellular telephone databasesuch as the database depicted in FIG. 3 and responding to requests froma client, in accordance with an embodiment of the invention.

[0013]FIG. 5 illustrates a flowchart of functional operations related toclient-side operations in sending a request for a cellular telephonenumber to a server, such as the server computer system shown in FIG. 1,in accordance with a particular embodiment of the invention.

[0014]FIG. 6 illustrates a sample graphical user interface screenshotthat may be implemented in order to allow a user to search and retrievea cellular telephone number.

DETAILED DESCRIPTION OF THE PRESENT INVENTION

[0015] A distributed environment 100 incorporating aspects of thepresent invention is shown in FIG. 1. The environment 100 has at leastone client computer system 102 and potentially other client computersystems 104, 106 and 108. The environment 100 may further include aserver computer system 110 that communicates with the client computersystems 102, 104, 106, and 108. The server computer system 110communicates with the client computer system(s) by a network 112 toprovide cellular telephone numbers in response to a request for suchnumbers. The server computer system 110 maintains a database 114 of suchcellular telephone numbers in order to provide this type of response.The server computer system 110 may further provide searching orfiltering capabilities in association with providing cell phone numbers.Additionally, the server computer system 110 may communicate withprovider system 116, wherein the provider system 116 maintains a moreextensive database 118 of cell phone numbers and other user information.In one embodiment, the provider system 116 and corresponding database118 relate to the actual service provider for cell phone users and thedatabase 118, therefore, is the database that maintains all cell phoneuser information, including names, addresses, billing information, etc.

[0016] In an embodiment, the computer system 102 is a desktop-typecomputer system that communicates with the server 110 over network 112wherein the network 112 is the Internet or some other communicationsystem. In another embodiment, other client computer systems 104, 106,and 108 may also communicate with the server over the Internet 112. Inone embodiment, cell phone 104 and/or pager 106 may communicate with aserver 110 over a separate or different type of network system. Forexample, the cellular telephone or pager may communicate via radiostations and mobile switching centers. These mobile switching centersmay further be connected to network servers that can provide informationto the cellular telephone and/or pager.

[0017] Additionally, the cellular telephone 104 and/or pager 106 maycommunicate with a public switch telephone network through the MCS. Sucha connection thereby allows communication between the cellular telephoneand/or pager and a conventional telephone. In this manner the cellulartelephone and/or pager may further connect to an Internet serviceprovider to further provide an actual Internet connection to an Internetserver, such as server 110. It should be noted, however, that server 110may communicate with or otherwise be connected to these client computersystems in other manners recognized by those skilled in the art. In yetanother embodiment, the client computer system 108 may be any othercommunication system or device capable of sending and receiving data toand from a network communication system 112.

[0018] The server computer system 110 maintains a database 114 ofcellular telephone numbers and/or pager numbers. In alternativeembodiments the server may further include other numbers, such as wireline values, Internet domain names, business addresses, personaladdresses, business phone numbers, etc. Similarly, each of these numbersor values is associated with the actual name or some other identifierthat may be used as a search term.

[0019] The server further communicates with the provider 116. Theprovider 116 maintains the cell phone numbers in combination with theirassociated names or search terms. The repository may relate to a cellphone provider service that keeps track of all the names and phonenumbers.

[0020] The computer systems 102, 104, 106, 108, 110 and 116 may berepresented by the computer system 200 shown in FIG. 2. The system 200has at least one processor 202 and a memory 204. In its most basicconfiguration, computing system 200 is illustrated in FIG. 2 by dashedline 206 encompassing the processor 202 and the memory 204.Additionally, system 200 may also include additional storage (removableand/or non-removable) including, but not limited to, magnetic or opticaldisks or tape. Such additional storage is illustrated in FIG. 2 byremovable storage 208 and non-removable storage 210. Computer storagemedia, such as memory 204, removable storage 208 or non-removablestorage 210 includes volatile and nonvolatile, removable andnon-removable media implemented in any method or technology for storageof information such as computer readable instructions, data structures,program modules or other data. Memory 204, removable storage 208 andnon-removable storage 210 are all examples of computer storage media.Computer storage media includes, but is not limited to, RAM, ROM,EEPROM, flash memory or other memory technology, CD-ROM, digitalversatile disks (DVD) or other optical storage, magnetic cassettes,magnetic tape, magnetic disk storage or other magnetic storage devices,or any other medium which can be used to store the desired informationand which can be accessed by system 200. Any such computer storage mediamay be part of system 200. Depending on the configuration and type ofcomputing device, memory 204 may be volatile, non-volatile or somecombination of the two.

[0021] System 200 may also contain communications connection(s) 212 thatallow the device to communicate with other devices. Additionally, system200 may have input device(s) 214 such as keyboard, mouse, pen, voiceinput device, touch input device, etc. Output device(s) 216 such as adisplay, speakers, printer, etc. may also be included. All these devicesare well known in the art and need not be discussed at length here.

[0022] Computer system 200 typically includes at least some form ofcomputer readable media. Computer readable media can be any availablemedia that can be accessed by system 200. By way of example, and notlimitation, computer readable media may comprise computer storage mediaand communication media. Communication media typically embodies computerreadable instructions, data structures, program modules or other data ina modulated data signal such as a carrier wave or other transportmechanism and includes any information delivery media. The term“modulated data signal” means a signal that has one or more of itscharacteristics set or changed in such a manner as to encode informationin the signal. By way of example, and not limitation, communicationmedia includes wired media such as a wired network or direct-wiredconnection, and wireless media such as acoustic, RF, infrared and otherwireless media. Combinations of any of the above should also be includedwithin the scope of computer readable media.

[0023]FIG. 3 illustrates a software/hardware environment 300incorporating aspects of the present invention. The environment 300includes separate modules that perform functional operations inaccordance with those aspects. In general, the environment 300 comprisesa client computer system or layer of software 302 and a server computersystem or layer of software 304, which, in one embodiment correspondrespectively to client computer system 102 and server computer system110 shown in FIG. 1. The client layer 302 communicates with the serverlayer 304 in order to retrieve cellular telephone numbers. To that end,the client layer 302 has a request module 306 that is used to requestinformation from the server layer 304. The client layer also has areceive module 308 that receives information from the server layer 304.The client layer may further include a user interface module 310 that isused to interface with the user to provide results back to the user andreceive search requests from the user. The client layer 302 may includemany other modules, such as input and output control modules, used inthe course of processing and computing functions. Such other modules arewell known in the art and need not be discussed in detail here.

[0024] The server layer 304 has a communication module 312 thatcommunicates with the client layer 302. The communication module 312 mayinclude a server receive module 314 for receiving search requests fromthe client layer 302, and in particular, the request module 306. Thecommunication module 312 may further include a send module 316 designedto package and send search results back to the client layer 302, and inparticular, to the client receive module 308.

[0025] The server software system 304 incorporates a search module 318which is used to search a database 320 of cellular telephone numbers andother information. In operation, the communication module 312 provides asearch request to search module 318. Typically, the search requestincludes the name or some other identifying information for a particularcellular telephone user. The search module 318 uses this information tolocate the particular phone number or set of phone numbers satisfyingthe search request. Upon locating the one or more numbers, the searchmodule provides the communication module 312 with the results fordelivery back to the client system 302. The search module 318 maycomprise or use many different modules or sub-modules in order toexecute the actual search and it is contemplated that many differentsearch routines may be used in order to perform this function inaccordance with the present invention. Additionally, although only onedatabase 320 is shown in FIG. 3, other embodiments may incorporate morethan one database 320 in order to implement storing of the phonenumbers. In such a case, the search module 318 searches all thenecessary databases to provide meaningful search results.

[0026] In accordance with aspects of the present invention, the database320 is frequently updated in order to provide meaningful search resultsin the ever-changing domain of cellular telephone numbers. In order toachieve such meaningful results, the server layer 304 further includes aserver update module 322 that communicates with a provider layer 324.The provider layer 324 has one or more provider modules, such asprovider 1 module 326, provider 2 module 328 and provider N module 330.Each provider module 326, 328 and 330 relates to a service provider thatmaintains information for each cellular telephone account, such as thecellular telephone number, the name of the user, among other items. Inorder to store such information, each provider has a database, such asdatabases 332, 334 and 336, respectively. The cell phone numberrepositories or databases 332, 334 and 336 are updated by the provideritself as new cell phones become active or deactivated.

[0027] In one embodiment, the server update module 322 communicatesrequests to the provider layer 324 to update the database 320. Theprovider modules 326, 328 and 330 may then provide comprehensive andup-do-date information of existing cell phone numbers and theirrespective users to the server layer 304. In another embodiment, eachprovider, 326, 328 and 330 has an update module, such as update modules338, 340 and 342, respectively. These update modules recognize when achange has been made to their respective database and transmit theupdated information to the server update module automatically.Alternatively, the entire database of information may be transmittedupon a change. Frequently requesting updates, or frequently receivingthe updates, whether based on time interval, e.g., every 10 minutes, orbased on an event, e.g., new number activated by a service provider,provides a relatively up-to-date database 320 of cellular telephonenumbers that may be accessed by client systems, such as system 302.

[0028] As information is received from the provider software system 324,a parse/redaction module 344 may be used to parse the receivedinformation and store required records and fields into database 320. Theparse module 344 may elect to store only some of the informationreceived, e.g., last names and associated telephone numbers only, orfirst and last names with associated telephone numbers, etc. The parsemodule 344 may further format the information in a consistent manner toaid the search module in searching the relative records and fields.Additionally, the parse module may be designed to allow for redaction ofsome predetermined cellular telephone numbers. In essence, the serverlayer 304 may have a list of some individuals that have requested to notlist their cellular telephone numbers for one reason or another. In sucha case, the parse/redaction module 344 may use this information toredact those numbers from being listed in the database 320.Alternatively, such redaction process may occur at the provider modules326, 328 and/or 330.

[0029]FIG. 4 illustrates the functional components related toserver-side operation, such as server 110 shown in FIG. 1, for creatinga cellular telephone database and responding to requests from one ormore clients for a particular number. Initially, flow 400 begins withcreate operation 402. Create operation 402 creates a cellular telephonedirectory database, such as database 320 shown in FIG. 3. Createoperation involves the culling of cellular telephone numbers andassociated user names. In other embodiments, other numbers, such aspager numbers may also be included in the creation of the database.Creation of the cellular telephone directory may be performed in manyways, such as requesting all existing cellular telephone numbers fromall existing cellular telephone providers and their respective services.Once all this information is requested and received the information isthen stored in a database that is searchable.

[0030] Following create operation 402, update operation 404 updates thedatabase created in operation 402. Update operation 404 may be initiatedin response to numerous, alternative events, such as the expiration of apredetermined time interval, e.g., every 10 minutes. Alternatively, theinitiating event may be a change in the provider's database. In such acase, the updates are more “real time” in that a connection with thecellular telephone system providers allows cellular telephone updateswhen changes are made to the provider's system(s). In essence, as soonas a number is activated or deactivated in this embodiment, an updatesignal is provided to the server system initiating the update process.The update process may involve simply modifying the relevant entries ora complete deletion of the first set of information and replacement withthe new information.

[0031] Following update operation 404, receive operation 406 receivesthe search request from a client computer system, such as systems 102,104, 106, and 108, as shown in FIG. 1. In an embodiment, the searchrequest includes information indicating that the request is a search forone or more cellular telephone numbers and at least one identifyingsearch term. The search term may be associated with one or more cellphone numbers. Exemplary search terms may include but are not limitedto, last names, cities, addresses, first names, service providers, etc.In an embodiment, only one search term may be provided, but alternativeembodiments allow more than one search term. Additionally, someembodiments may allow for wildcards or other control charactersindicating search parameters, e.g., an asterisk may indicate that asearch should collect all records satisfying the letters preceding theasterisk, ignoring those following the asterisk.

[0032] Following receive operation 406, search operation 408 searchesthe database for the search term. Upon locating one or more search termsthat satisfy the search request, the results are packaged for deliveryto the client. I.e., upon locating the results, send operation 410 sendsthe results back to the requester. In an embodiment, the results may bea list of one or more names of users and their corresponding cellulartelephone numbers. Additionally, the requestor may then select one ofthe names and numbers and dial that user, as discussed below inconjunction with FIG. 5.

[0033]FIG. 5 illustrates the functional components related toclient-side operation, such as client 102 shown in FIG. 1, forrequesting a cellular telephone number. Initially, flow 500 begins withdefine operation 502. Define operation 502 defines a geographic regionrelating to telephone numbers. Define operation 502 may involve userinput relating to which city or which geographic region the cell phoneuser is located. In alternative embodiments, define operation 502 mayinvolve selecting an area code or another geographic region identifier.

[0034] Following define operation 502, provide operation 504 providesthe last name of the cellular telephone user. In most embodiments, thelast name of the user is the primary search term in locating the propercellular telephone number. Consequently, the database used to store thenumbers with associated search terms typically has been pre-sorted,alphabetically, on last names to improve the search process. Moreover,in some embodiments, the last name may be a required search term.Alternative embodiments may require other items in addition to the lastname or in place of the last name. Upon selecting or providing the lastname, an optional provide operation 506 may be preformed. Optionalprovide operation 506 may provide other identifying search terms, suchas first name, address, etc. These items may also be used to furtherdefine the search.

[0035] Upon providing the requisite search terms, submit operation 508submits the request to the server. Submit operation 508 involvescommunication, such as over the Internet, of the request to the properserver. Upon receiving the request, the server searches the database andreturns the search results to the client. Hence, receive operation 510receives the search results from the server.

[0036] As the results are received, determine operation 512 determineswhether the results satisfy the request. Determine operation may involvethe user identifying whether the proper set of results was returned, ormore specifically, whether the desired cellular telephone number wasincluded in the search results. Alternatively, the user may determinethat the results returned from the search were too many such that theproper cellular number could not be determined without too much effort.If the response does not satisfy the request for this reason or anyother reason, flow 500 branches NO to redefine operation 514.

[0037] Redefine operation 514 redefines the search request, such as bychanging the search terms or by adding more search terms. Uponredefining the search, submit operation 508 submits the new search tothe server.

[0038] On the other hand, if the response satisfies the request, thenflow branches YES to call or store operation 516. Call or storeoperation 516 relates to the user either calling the requested andreceived telephone number, or storing that number in the user's personaldatabase for later recall. Of course other operations may be preformedin place of operation 516, i.e., the user is not required to call thetelephone number or store the number. Upon completion of call or storeoperation 516, flow ends at end operation 518.

[0039]FIG. 6 illustrates a sample graphical user interface screenshot600 that may be implemented in order to allow a user to search andretrieve a cellular telephone number in accordance with the presentinvention. The screenshot 600 may be presented to the user on a clientsystem such as systems 102, 104, 106 and/or 108 (FIG. 1). As such, theuser interface for the client system typically can display suchinformation. However, some client systems, such as the cellulartelephone 104, may have a more limited area to display such informationsuch that the screenshot 600 may be modified to account for the limitedarea.

[0040] As shown the display 600 has a title area 602 that displays atitle for the screenshot. In this example, the title is “Online CellularNumber Locator.” Other embodiments may use other titles, but in general,the title provides the user the necessary information to indicate thepresent user-interface display. Also as shown, an optional informationarea 604 may be provided to give the user information on the intendeduse of the display 600 and its functionality. For example, instructionsmay be provided in the area 604.

[0041] The screenshot 600 also has a user entry area 606 for enteringsearch information. The information is then used by the system, e.g.,client system 102, to package a search request including the propersearch terms. Many different embodiments may be created that identifyany number of different, potential search terms. The example shown inFIG. 6 identifies a few such terms. For instance, the screenshot hastext-entry boxes 608 and 610 for entering State and City information.Such information eventually helps the server system, such as server 110narrow the search results. Moreover, since most requesting users knowthis information, such an entry is not overly burdensome.

[0042] Display 600 also provides boxes 612, 614 and 616 for entering, assearch terms, the last name, first name and address, respectively,associated with the cellular telephone number requested. In many casesonly the last name is required. However, when the user provides moreinformation, the results tend to be more relevant since the server cannarrow the results. Yet, in other situations, too many search terms mayprevent the server from locating the proper record, especially if one ofthe entries is incorrect for some reason. Consequently, it isforeseeable that users may begin by entering one or two search terms(such as the state and last name) and, depending on the results, narrowthe search by entering more terms (such as first name, city and/or theaddress).

[0043] In a particular embodiment, the display 600 may further includean optional search term entry area 618 for entering the serviceprovider, such providers 326, 328 and 330. The service provider may thengive more information in narrowing the search for the proper telephonenumber. Alternatively, this information may be used by the server torequest more information from the proper provider. The display mayfurther include a drop-down control 620 providing the user the abilityto display and then select from a list of potential or known providers,such as “Cingular Wireless” service provider.

[0044] The display 600 further includes a control portion 622 that hascontrols for submitting the request, i.e., submit button 624 or to clearthe information, such as through clear button 626. Of course othercontrols (not shown), e.g., “exit,” “go back,” etc., may also beimplemented and displayed in display 600.

[0045] Optionally, the display 600 may have an additional functionregion 328 for registering new users. The region 328 provides a registerbutton 330 that, when selected, provides the user with a form toregister their cellular phone number on the system. Region 328 isoptional but may provide significant benefits in getting new numberslisted on the server.

[0046] It will be clear that the present invention is well adapted toattain the ends and advantages mentioned as well as those inherenttherein. While a presently preferred embodiment has been described forpurposes of this disclosure, various changes and modifications may bemade which are well within the scope of the invention. Numerous otherchanges may be made which will readily suggest themselves to thoseskilled in the art and which are encompassed in the spirit of theinvention disclosed and as defined in the appended claims.

What is claimed is:
 1. A method of locating a cell phone number for auser, the method comprising: accessing an online database of cell phonenumbers; providing a search request, wherein the search request has oneor more search terms; and receiving at least one cell phone number inresponse to the search.
 2. A method as defined in claim 1 wherein thecell phone number relates to a pager identification.
 3. A method asdefined in claim 1 wherein the database is updated automatically.
 4. Amethod as defined in claim 3 wherein the automatic update occurs uponexpiration of a predetermined time interval.
 5. A method as defined inclaim 3 wherein the automatic update occurs upon modification of anexisting telephone number database.
 6. A method as defined in claim 3wherein the automatic update transmits identifying redactioninformation.
 7. A method as defined in claim 3 wherein the update actredacts private information.
 8. A method as defined in claim 1 whereinthe at least one search term includes a geographic region.
 9. A methodas defined in claim 1 wherein the user stores the received cell phone inmemory located locally.
 10. A computer program product havingcomputer-executable instructions for performing the steps recited inclaim
 1. 11. A computer program product having computer-executableinstructions for performing the steps recited in claim
 4. 12. A computerprogram product having computer-executable instructions for performingthe steps recited in claim
 5. 13. A computer system for providing one ormore cellular telephone numbers in response to a received request, thesystem comprising: a database for storing cellular telephone numbers; areceive module for receiving the request, the request having at leastone search term; a search module for searching the database using the atleast one search term in the search request; and an update module, theupdate module communicating with a service provider, wherein the serviceprovider provides updated cellular telephone information to the system.14. A computer system as defined in claim 13 wherein the update moduleupdates the database automatically.
 15. A computer system as defined inclaim 14 wherein the automatic update occurs based on the expiration ofa predetermined time interval.
 16. A computer system as defined in claim14 wherein the automatic update occurs based on a modification in adatabase of the service provider.
 17. A computer system as defined inclaim 14 wherein the update module communicates with a plurality ofservice providers.
 18. A computer system as defined in claim 17 whereinthe service providers routinely send update information to the updatemodule.